import axios from "axios";
import { ElMessage } from 'element-plus'
import router from '../router'


//创建axios实例
const request = axios.create({
  baseURL: '/api', // api 的 base_url
  timeout: 5000 // 请求超时时间
});


//axios请求的request拦截器
request.interceptors.request.use(
  (config) => {
    //得到本地存储的存有token的登录用户信息
    const loginUser = JSON.parse(localStorage.getItem('loginUser'));
    if(loginUser){
      //在所有请求加上token请求头
      config.headers.token = loginUser.token;
    }
    return config;
  }
)

//axios的响应response拦截器
request.interceptors.response.use(
  (response) => {
    return response.data; //成功回调
  },
  (error) => {           //失败回调
    //响应失败 401状态码 跳转到登录页面
    if(error.response.status == 401){
      ElMessage.error('登录失效 请重新登录')
      router.push('/login')
    }else{
      ElMessage.error('接口访问异常')
    }
    return Promise.reject(error);
  }
);

export default request; //导出axios实例

